The present invention relates generally to printer and tag interrogator systems and, more particularly to an automatic mode detection and conversion system for controlling the operation of a printer or a tag interrogator.
When connected to a computer system, printers are typically controlled by software executing on the computer system. The software sends printer commands, such as start of data, end of data, and the like, and data to the printer, and receives status information from the printer, such as out of paper, paper jammed, and the like. Printer commands tell the printer how the data should be printed. Currently, control codes are used to designate printer commands. A control code is a non-printing character used by a computer program to control the actions of an external device. Aside from printing, control codes are used in other types of communications, including management of display screens.
Computer users typically encounter control codes, also known as setup strings or escape sequences, when dealing with printers. An escape sequence is a sequence of characters, beginning with the Escape character (ASCII 27, hexadecimal 1B), followed by one or more characters that collectively issue an instruction or command to the printer. Often, some type of terminating character is used to designate the end of an escape sequence. The Escape character and terminating characters tell the printer to interpret all characters in between as commands rather than as data. Printer control codes vary by make and model of the printer. Printer control codes are mainly employed by programmers or by users to control a printer when an application program does not support the printer or one of the printer""s specialized features.
Requiring users to work with control codes is burdensome because the control codes are often awkward to type, i.e., users are required to depress more than one key at a time, and the control codes are virtually meaningless when printed. For example, novice users find it difficult to remember without reference information the ASCII code representation for a start-of-text control code. When a computer system is being used in the field, that is, outside of an office environment, it is inconvenient to require the users to carry and access such reference information. Additionally, when users create predefined printer commands by storing control codes in a command file, users encounter difficulties because the text editing programs used to create command files have their own protocol for entering control codes. For example, users find it difficult to enter the control code that signifies a new line or carriage return because text editing programs interpret the carriage return as part of textual data.
Printers are used to print a variety of information, including bar code labels. Bar code labels can be used for tracking and providing information about items. For example, inventory items in stores typically bear printed labels providing information such as serial numbers, price, and size. Some such labels include printed bar code symbols, but symbols selected from a variety of symbologies, many of which may be read optically. Such labels contain a very limited amount of information and are not easily updated, typically requiring the label to be reprinted if it is to be modified.
An alternative method of tracking and providing information about devices uses parasitic power memories. Parasitic power memories are commercially available devices having a single input line and a low power memory device, typically used as tags for inventory control and identification. An example of such devices is found in the DS199x series of Touch Memory devices available from Dallas Semiconductor Corporation.
In operation, parasitic power memories are usually read using a special electronic interrogator or reader that physically contacts the parasitic power memory and forms an electrical connection to the parasitic power memory. The reader supplies a 5 V signal to power the parasitic power memory and outputs a coded signal (polling code) to access the parasitic power memory. When the parasitic power memory receives the polling code and the power input, it outputs data serially to the reader or accepts data from the reader. A further discussion of the structure and operation of such devices is found in the Book of DS199x Touch Memory Standards and the release 50 Ways to Touch Memory, each by Dallas Semiconductor and each of which is incorporated herein by reference.
Such memories disadvantageously require the reader to physically contact the memory to provide power, input the polling code and output the data. Also, the reader must be programmed with a priori knowledge of the particular parasitic power memory, such as control information, including the proper polling code and data transfer protocol. There is no simple mechanism for the reader to obtain control information from the memory itself.
Additionally, there are no efficient methods for storing data to the memories. An apparatus typically generates numerous tags. Thereafter, a person must program each tag individually for a given application, such as for a lot of goods. Often, redundant or overhead data is required to be stored in the memory, in addition to the relevant data that the person desires to have stored in the memory.
The present invention allows users of a computer system to program a printer using a command mode consisting of alphanumeric characters that can be found on a standard keyboard. Command files created using this command mode are easier to create, read, and understand. The present invention maintains compatibility with prior systems by also allowing users to program a printer using conventional control codes. Printer command files originally created using conventional control codes may be updated with alphanumeric characters because the present invention automatically detects and interprets either command mode.
Aspects of the present invention also automatically detect and convert characteristics of data read from tags, or input to be written to tags. In one aspect of the invention, an apparatus such as a printer or reader receives a data stream from a memory, such as from a RF or photonic memory. The apparatus compares portions of the data stream to separately stored data, such as a look-up table of data. If a portion of the data matches an entry in the table, then a corresponding entry in the table causes the apparatus to be automatically configured.
Alternatively, under another aspect of the invention, an apparatus receives a data stream to be written, such as to be written in a bar code symbol or tag memory. The apparatus analyzes portions of the data, such as comparing portions of the data to a reference table. If the apparatus identifies a match in the portion of the data, then the apparatus adjusts the writing of such data. For example, a printer writes a portion of the incoming data stream to both fields in a bar code symbol and in a portion of the memory in an adjacent RF tag.